# -*- coding: utf-8 -*-
# @Time    : 2020/11/9 21:28
# @Author  : DuJiabao
# @File    : record_video.py
# @Description : 这是一个基于OpenCV录制视频的文件
import cv2  # 导入opencv包


if __name__ == '__main__':
    cap = cv2.VideoCapture(0)  # 打开摄像头

    fourcc = cv2.VideoWriter_fourcc(*'XVID')  # 视频存储的格式
    fps = cap.get(cv2.CAP_PROP_FPS)  # 帧率
    # 视频的宽高
    size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
    out = cv2.VideoWriter('video.avi', fourcc, fps, size)  # 视频存储
    ret, img = cap.read()  # 开始使用摄像头读数据，返回ret为true，img为读的图像
    cv2.namedWindow('video', cv2.WINDOW_AUTOSIZE)  # 创建一个名为video的窗口

    while ret:
        cv2.imshow('video', img)  # 将捕捉到的图像在video窗口显示
        out.write(img)  # 将捕捉到的图像存储
        # 按esc键退出程序
        if cv2.waitKey(1) & 0xFF == 27:
            break
        ret, img = cap.read()  # 开始使用摄像头读数据，返回ret为true，img为读的图像
    cap.release()  # 关闭摄像头
    out.release()
